<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>pygccxml.parser.declarations_cache.file_cache_t</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="pygccxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://www.language-binding.net">pygccxml</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="pygccxml-module.html">Package&nbsp;pygccxml</a> ::
        <a href="pygccxml.parser-module.html">Package&nbsp;parser</a> ::
        <a href="pygccxml.parser.declarations_cache-module.html">Module&nbsp;declarations_cache</a> ::
        Class&nbsp;file_cache_t
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
      </table>
    </td>
  </tr>
</table>
<!-- ==================== TYPE DESCRIPTION ==================== -->
<h1 class="epydoc">type file_cache_t</h1><p class="nomargin-top"><span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t">source&nbsp;code</a></span></p>
<pre class="base-tree">
  object --+    
           |    
<a href="pygccxml.parser.declarations_cache.cache_base_t-class.html">cache_base_t</a> --+
               |
              <strong class="uidshort">file_cache_t</strong>
</pre>

<hr />
<p>Cache implementation to store data in a pickled form in a file. This 
  class contains some cache logic that keeps track of which entries have 
  been 'hit' in the cache and if an entry has not been hit then it is 
  deleted at the time of the flush().  This keeps the cache from growing 
  larger when files change and are not used again.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td align="left" colspan="2" class="table-header">
    <span class="table-header">Instance Methods</span></td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="pygccxml.parser.declarations_cache.file_cache_t-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">name</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="pygccxml.parser.declarations_cache.file_cache_t-class.html#flush" class="summary-sig-name">flush</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Flush (write out) the cache to disk if needed.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.flush">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="pygccxml.parser.declarations_cache.file_cache_t-class.html#update" class="summary-sig-name">update</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">source_file</span>,
        <span class="summary-sig-arg">configuration</span>,
        <span class="summary-sig-arg">declarations</span>,
        <span class="summary-sig-arg">included_files</span>)</span><br />
      Update a cached record with the current key and value contents.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.update">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="pygccxml.parser.declarations_cache.file_cache_t-class.html#cached_value" class="summary-sig-name">cached_value</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">source_file</span>,
        <span class="summary-sig-arg">configuration</span>)</span><br />
      Attempt to lookup the cached decls for the given file and 
      configuration.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.cached_value">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td align="left" colspan="2" class="table-header">
    <span class="table-header">Class Variables</span></td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="pygccxml.parser.declarations_cache.cache_base_t-class.html">cache_base_t</a></code></b>:
      <code><a href="pygccxml.parser.declarations_cache.cache_base_t-class.html#logger">logger</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td align="left" colspan="2" class="table-header">
    <span class="table-header">Method Details</span></td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">name</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>name</code></strong> - name of the cache file.</li>
    </ul></dd>
    <dt>Overrides:
        <a href="pygccxml.parser.declarations_cache.cache_base_t-class.html#__init__">cache_base_t.__init__</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="flush"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">flush</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.flush">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Flush (write out) the cache to disk if needed.</p>
  <dl class="fields">
    <dt>Overrides:
        <a href="pygccxml.parser.declarations_cache.cache_base_t-class.html#flush">cache_base_t.flush</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="update"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">update</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">source_file</span>,
        <span class="sig-arg">configuration</span>,
        <span class="sig-arg">declarations</span>,
        <span class="sig-arg">included_files</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.update">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Update a cached record with the current key and value contents.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>source_file</code></strong> - path to the C++ source file being parsed</li>
        <li><strong class="pname"><code>configuration</code></strong> - configuration used in parsing (config_t)</li>
        <li><strong class="pname"><code>declarations</code></strong> - declaration tree found when parsing</li>
        <li><strong class="pname"><code>included_files</code></strong> - files included by parsing.</li>
    </ul></dd>
    <dt>Overrides:
        <a href="pygccxml.parser.declarations_cache.cache_base_t-class.html#update">cache_base_t.update</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="cached_value"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">cached_value</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">source_file</span>,
        <span class="sig-arg">configuration</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="pygccxml.parser.declarations_cache-pysrc.html#file_cache_t.cached_value">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Attempt to lookup the cached decls for the given file and 
  configuration. If not found or signature check fails, returns None.</p>
  <dl class="fields">
    <dt>Overrides:
        <a href="pygccxml.parser.declarations_cache.cache_base_t-class.html#cached_value">cache_base_t.cached_value</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="pygccxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://www.language-binding.net">pygccxml</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1
    on Mon Oct 20 09:00:21 2008
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
